1. Field of the Invention
The present invention relates to systems and methods for hybrid applications.
2. Description of the Related Art
Due to differences amongst platforms, mobile application development is often a one-off affair, targeting a single application on a single mobile platform such as Android using Java. When, for example, an iOS version of the application needs to be written in Objective-C, then an entirely new application is developed from scratch, often by a different team of specialized engineers. When this paradigm is perpetuated, the result is an inefficient development model where teams working independently reinvent the same code to solve similar problems.
Hybrid native/web frameworks such as PhoneGap and Appcelerator Titanium tackle this problem by moving platform specific native code into JavaScript (JS) executing in the device's native web view environment. JavaScript running in this environment can tap into reusable native code via remote procedure calls over a JS/native bridge. The goal is to make it easy to port the same application across multiple platforms while amortizing the cost of developing reusable native code over several different projects. Although this approach appears promising in theory, it begins to break-down when an application tries to break from the typical “tables and tabs” user interface while presenting dynamically downloaded/updated rich experiences.
PhoneGap's web-centric approach extends a standard web browser environment with extra APIs for platform specific features such as geolocation, accelerometer, local file access, etc., but lacks standardized access to leverage and coordinate with native UI features. Instead, the user interface and business logic is left entirely to web frameworks such as YUI and JQuery. In this environment, developers are totally at the mercy of the web view's ability to quickly and accurately render and animate CSS3. Depending on the HTML framework, it can be challenging to develop a user experience that does not feel like a web site or work around the visual glitches that the on-screen keyboard or video overlays cause.
In contrast, Titanium uses a native-centric solution that uses the native web view environment only for application control logic. Employing a one-size-fits all abstract UI framework, developers can use native UI elements to make applications that feel less web-like than what PhoneGap has to offer. But the lowest common denominator UI framework also prevents developers from significantly customizing the look & feel of their application. Although the API supports spawning multiple web views for e-book like dynamic content, these web views cannot access any of the Titanium APIs, cutting them off from the advanced native features of Titanium.
It is in this context that embodiments of the invention arise.